package it.univaq.mwt.arssa.presentation.common;

import it.univaq.mwt.arssa.business.ArssaBusinessFactory;
import it.univaq.mwt.arssa.business.SecurityService;
import it.univaq.mwt.arssa.business.model.Dipendente;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.securityfilter.realm.SimpleSecurityRealmBase;

public class ArssaRealm extends SimpleSecurityRealmBase{

	@Override
	public boolean booleanAuthenticate(String username, String password,HttpServletRequest request) {
		ArssaBusinessFactory factory = ArssaBusinessFactory.getInstance();
		SecurityService service = factory.getSecurityService();
		Dipendente dipendente = service.authenticate(username, password);
		
		// se l'utente esiste lo metto in sessione
		if(dipendente != null){
			HttpSession session = request.getSession();
			session.setAttribute("dipendente", dipendente);	
			return true;
			
		}else{
			return false;
		}
		
	}

	@Override
	public boolean isUserInRole(String username, String rolename, HttpServletRequest request) {
		
		/* Verifico che l'utente abbia effettivamente il ruolo per poter svoglere una operazione */
			
		HttpSession session = request.getSession();
		
		Dipendente dipendente = (Dipendente) session.getAttribute("dipendente");

		if (rolename.equals(dipendente.getRuolo().getNome())){
			return true;
		}else{
			return false;
		}
	
	}
	
}
